#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   File Name：    simple_math_cal.py
   Author :       zyq
   CreateDate：   2024/7/15 18:26
   Remark :  简单数学计算
-------------------------------------------------
"""


def safe_eval(expression):
    # 这是一个简化的安全评估函数，仅用于示例。
    # 在实际应用中，应该使用更复杂的解析器来安全地评估数学表达式。
    parts = expression.split('+')
    if len(parts) == 2:
        return int(parts[0]) + int(parts[1])
    # 可以根据需要扩展以支持其他操作符和更复杂的表达式
    raise ValueError(f"Unsupported expression: {expression}")


def calculate_equation(equation):
    """
    计算简单的数学表达式。

    Args:
        equation (str): 包含两个数字和一个运算符的字符串表达式，例如 "0+10"。

    Returns:
        int: 表达式的计算结果。

    Raises:
        ValueError: 如果运算符不受支持或表达式包含除零操作。

    注意：
        该函数假设表达式格式正确，即包含一个运算符和两个数字，并且运算符后总是跟着两个数字。
        第一个操作数被假定为0（对于加法和减法）或1（对于除法）。
        该函数使用了一个简化的`safe_eval`函数进行表达式计算，该函数仅用于示例，实际应用中应使用更健壮的表达式解析器。
    """
    equation= equation.replace("=?", "")

    # 提取运算符
    operator = equation[1]

    # 根据运算符长度提取表达式，这里假设操作符后总是跟着两个数字
    if operator in ['+', '-', '*', '/']:
        expression = equation.split(operator, 1)[1]  # 提取操作符后的表达式部分
        full_expression = f"0{operator}{expression}"  # 构建完整的表达式，以0作为第一个操作数进行示例计算
    else:
        raise ValueError(f"Unsupported operator: {operator}")

    # 根据运算符进行计算并得出结果
    if operator == "+":
        result = safe_eval(full_expression)
    elif operator == "-":
        # 假设第一个操作数为0，则表达式变为 "0 - (后续表达式)"
        result = safe_eval(f"0-({expression})")
    elif operator == "*":
        result = safe_eval(full_expression)
    elif operator == "/":
        # 避免除以0的情况，并假设第一个操作数为1，则表达式变为 "1 / (后续表达式)"
        if '0' not in expression:
            result = safe_eval(f"1/({expression})")
        else:
            raise ValueError("Cannot divide by zero.")
    else:
        raise ValueError(f"Unsupported operator: {operator}")

    # 返回计算结果
    return result


if __name__ == '__main__':
    print(calculate_equation("3+8=?"))
    # print(calculate_equation("10-5=?"))
    # print(calculate_equation("2*4=?"))
    # print(calculate_equation("6/3=?"))
